Virtual machines allow many computing environments (e.g., general desktop environments, database servers, web services, etc.) to be implemented within one or more host computing devices. A virtual machine may comprise its own operating system, applications, and configurations. As such, a virtual machine may function as a self-contained computing environment (even though it is virtual rather than physical). Moreover, one or more virtual machines may be hosted on a single host computing device, such as a desktop, laptop, server, storage controller, etc. For example, a virtual machine may be hosted (e.g., virtualized by a hypervisor, such as a virtual machine management console) using virtual machine data (e.g., virtual machine configuration data and/or one or more virtual machine disks). The virtual machine data may be stored according to a virtual machine layout. For example, virtual machine configuration data of a virtual machine may be stored within a first datastore, such as a first folder, and a virtual machine disk of the virtual machine may be stored within a second datastore, such as a second folder. It may be appreciated that a datastore may comprise or rather be comprised within a folder, a volume, a LUN, a storage device accessible through a storage controller, and/or other storage locations. In this way, a virtual machine may be stored within one or more storage locations according to a virtual machine layout (e.g., a virtual machine layout for the virtual machine may specify that configuration data of the virtual machine is stored within a first datastore and that a virtual machine disk of the virtual machine is stored within the second datastore).
A virtual machine management console may be configured to perform various management functions associated with virtualized data, such as virtual machines. In one example, the virtual machine management console may create a snapshot of a virtual machine, which may comprise a layout of the virtual machine at a particular point in time. For example, the snapshot may comprise a point in time representation of a first datastore that comprises virtual machine configuration data of a virtual machine, a second datastore (at that point in time) that comprises a first virtual machine disk of the virtual machine, and a third datastore (at that point in time) that comprises a second virtual machine disk of the virtual machine. The snapshot may thus identify or correspond to an original virtual machine layout that was in existence when the snapshot was created.
The snapshot may be used to restore the virtual machine, such as creating a clone of the virtual machine (e.g., a virus may have infected a virtual machine, and thus a user may desire to destroy the infected virtual machine and create a clone of the non-infected virtual machine from the snapshot). Unfortunately, restoration of the virtual machine may be limited to the original virtual machine layout identified within the snapshot (e.g., the virtual machine may be merely restored to the one or more original datastores that comprised the virtual machine when the snapshot was created). That is, current restoration techniques may be unable to restore the virtual machine according to a current virtual machine layout that is different than the original virtual machine layout. For example, the snapshot may have been created when a first datastore comprised virtual machine configuration data, a second datastore comprised the first virtual machine disk, and a third datastore comprised the second virtual machine disk, which may have been captured as the original virtual machine layout within the snapshot. Over time, however, the original virtual machine layout may have been modified to a current virtual machine layout (e.g., the third datastore, such as a storage device, comprising the second virtual machine disk may have failed, thus resulting in an administrator consolidating the second virtual machine disk to the second datastore already comprising the first virtual machine disk, such that the second datastore comprises both the first and second virtual machine disks in the current virtual machine layout (instead of merely the first virtual machine disk as in the original virtual machine layout)). Current restoration techniques may be unable to restore the virtual machine from the snapshot according to the current virtual machine layout because the current virtual machine layout is different than the original virtual machine layout specified within the snapshot (e.g., the second virtual machine disk now resides within the second datastore according to the current virtual machine layout, as opposed to residing within the third datastore according to the original virtual machine layout).